package com.doublethread.easymart.modules.product.dto;


import com.doublethread.easymart.common.result.BasePageDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * 商品查询DTO
 * 用于管理端和公开接口的商品列表查询
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class ProductQueryDTO extends BasePageDTO {

    /**
     * 搜索关键词
     */
    private String keyword;

    /**
     * 分类ID
     */
    private Long categoryId;

    /**
     * 最低价格
     */
    private BigDecimal minPrice;

    /**
     * 最高价格
     */
    private BigDecimal maxPrice;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 商品状态：0-下架，1-上架
     */
    private Integer status;

    /**
     * 是否只显示低库存商品（管理端使用）
     */
    private Boolean lowStock;

    /**
     * 是否只显示有库存商品（公开接口使用）
     */
    private Boolean inStock;

    /**
     * 是否包含子分类商品（当categoryId为一级分类时有效）
     */
    private Boolean includeSubCategories = false;

    /**
     * 排序字段：price-价格，sales-销量，createTime-创建时间，stock-库存
     */
    private String sortBy = "createTime";

    /**
     * 排序方向：asc-升序，desc-降序
     */
    private String sortOrder = "desc";
}
